<?
/*************************
说明：
判断传递的变量中是否含有非法字符
使用方法:1.在需要的地方包含本文件 调用函数FunPostGetFilter() 参数默认为1不显示非法的字符
如$_POST、$_GET
功能：
防注入
**************************/


function turnxinqi($str)
{//转入星期的数字，转换成中文字
	switch($str)
	{
		case 0:
		  return "日";
		case 1: 
		  return "一";
		case 2: 
		  return "二";
		case 3: 
		  return "三";
		case 4: 
		  return "四";
		case 5: 
		  return "五";
		case 6: 
		  return "六";
	}
	return "";
}




//检查并返回是否是多床间的标识变量
function isDuoChuang($flag)
{
	if(strlen($flag)>3)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}


//四舍五入两位小数
function myround($num)
{
	if(is_numeric($num))
	{
		return round($num,2);
	}
	return 0.00;
}
//是否存在数组中的值
function FunStringExist($StrFiltrate,$ArrFiltrate)
{
	foreach ($ArrFiltrate as $key=>$value)
	{
		if(strstr($StrFiltrate."",$value))
		{
			return $value;
		}
	}
	return "";
}

//替换前台输入的信息 比如过滤非法字符为"*"
function HtmlReplace($str="")
{
	//==========================================
	//第一次过滤
	global $SystemConest;
	$flnum=0;//非法字符串长度
	$YMstr="";
	$FeFa_array=explode(",",$SystemConest[8]);
	foreach($FeFa_array as $valudes)
	{
		$flnum=mb_strlen($valudes,'gb2312');
		for($i=0;$i<$flnum;$i++)
		{
			$YMstr=$YMstr."*";
		}
		
		if(strstr($str,$valudes))
		{
			$str=str_replace($valudes,$YMstr,$str);
		}
		$YMstr="";
		
	}
	//==========================================
	//第二次过滤
	
	return $str;
}
function FunPostGetFilter($ShowType=1)
{
	//要过滤的非法字符
	global $SystemConest;
	$SysFilteringStr=$SystemConest[8];
	$ArrFiltrate=explode(",",$SysFilteringStr);
	
	//合并$_POST 和 $_GET
	if(function_exists(array_merge))
	{
		$ArrPostAndGet=array_merge($_GET,$_POST);
	}
	else
	{
		foreach($_POST as $key=>$value)
		{
			$ArrPostAndGet[]=$value;
		}
		foreach($_GET as $key=>$value)
		{
			$ArrPostAndGet[]=$value;
		}
	}
	
	//验证开始
	foreach($ArrPostAndGet as $key=>$value)
	{
		$v1="";
		$v1=FunStringExist($value,$ArrFiltrate);
		if ($v1!="")
		{
			if($ShowType==1)
			{
				echo "<script language='javascript'>alert('信息中不得包含非法字符');</script>";
			}
			else
			{
				echo "<script language='javascript'>alert('信息中不得包含非法字符:".$v1."');</script>";	
			}
			echo "<script language='javascript'>history.go(-1);</script>";
			exit;
			
		}
	}
}

/***************结束防止PHP注入*****************/
//计算两时间的差_传入的值必须时数字
function difftime_i($endtime,$starttime,$type="1")
{
//返回两时间的相差天数
		return round(($endtime-$starttime)/3600/24);
	
}


//计算两时间的差
function difftime($endtime,$starttime,$type="1")
{
	 
	if($type=="1")
	{//返回两时间的相差天数
		return round((strtotime($endtime)-strtotime($starttime))/3600/24);
	}
	if($type=="4")
	{//返回两时间的相差天数
		return (strtotime($endtime)-strtotime($starttime))/3600/24;
	}
	
	if($type=="3")
	{//返回两时间的相差秒数
		return strtotime($endtime)-strtotime($starttime);
	}
	if($type=="2")
	{//返回两时间的相差天数 如21天12小时 21分
		   $past = strtotime($starttime); // Some timestamp in the past
		   $now  = strtotime($endtime); // Current timestamp
		   $time = $now - $past;
		   $year   = floor($time / 60 / 60 / 24 / 365);
		   $time  -= $year * 60 * 60 * 24 * 365;
		   $month  = floor($time / 60 / 60 / 24 / 30);
		   $time  -= $month * 60 * 60 * 24 * 30;
		   $week   = floor($time / 60 / 60 / 24 / 7);
		   $time  -= $week * 60 * 60 * 24 * 7;
		   $day    = floor($time / 60 / 60 / 24);
		   $time  -= $day * 60 * 60 * 24;
		   $hour   = floor($time / 60 / 60);
		   $time  -= $hour * 60 * 60;
		   $minute = floor($time / 60);
		   $time  -= $minute * 60;
		   $second = $time;
		   $elapse = "";
			
		   $unitArr = array('年'  =>'year', '个月'=>'month',  '周'=>'week', '天'=>'day',
							'小时'=>'hour', '分钟'=>'minute', '秒'=>'second'
							);
		   foreach ( $unitArr as $cn => $u )
		   {
				if($$u>0)
				{
				 $elapse=$elapse. $$u . $cn;
				}
			  
		   }
		   return  $elapse;
	}
	
	return 0;
}

function gbk2utf8($str)
{
	return iconv("gbk","UTF-8",$str); 
}
function utf82gbk($str)
{
	return iconv("UTF-8","gbk",$str); 
}

//把数字格式的字符串转换成数字，若字符串为空或不是数字型的则返回0
function strtoint($str)
{
	if($str!="" and is_numeric($str))
	{
		 return (int)$str;
	}
	else
	{
		return 0;
	}
}

//检查传入的字符串是否是数字字符串，是的话返回true，反之反回false  当为空时返回flase
function CheckisNumber($str)
{
	if($str=="" or $str==null ) return false;
	if(is_numeric($str))return true;
	return false;
}

/**
 * 人民币和美元互换,默认是人民币转换成美元，
 * @param $num 互换的金额
 * @param $type 默认是r 表示是将美元转换成美元，当值是d时，表示是将美元换成人民币.
 * @return 失败将返回false
 */
function RmbToDols($numi,$type="r")
{
	
		global $Exchangerate;
		$hl=$Exchangerate["dol"];
		
		if($type=="r")
		{
			return round($numi,2);
		}
		if($type=="d")
		{
			
			return round(($hl * $numi),2);
		}

}	
/**
获取美元转人民币的汇率
 */
function RmbToDolsHuilv()
{
	global $Exchangerate;
	return $Exchangerate["dol"];
}

/**
显示信息
 * @param $num  金额
 * @param $type 显示的币种
 */
function showmoney($num,$type)
{
	if($type=="rmb")
	{
		return "￥".RmbToDols($num,"d");;
	}
	if($type=="dol")
	{
		return "$".$num;
	}
}
/**
 * 根据周期的不同，显示不同的价格形式

 * @param  $zhouqi 周期值
 * @param  $indate  时间有效范围
 * @param  $anydate  任意时间
 */
function formatpriceshow($zhouqi,$indate,$anydate,$jutidate)
{
	if($zhouqi=="每周")
	{
		
		//return $indate;
		return preg_replace("/,周/",",",$jutidate);;	
	}
	
	if($zhouqi=="任意")
	{
		$arr=explode(",", $anydate);
		sort($arr);
		return implode("<br>", $arr);
		//return  $anydate;	
	}
	
	if($zhouqi=="每天")
	{
		return $indate;
	}
}

/**
 * 防止页面刷新
 */
function notreflash()
{
	 $allow_sep = "99999999";   
	 if (isset($_SESSION["post_sep"]))   
	 {   
	 if (time() - $_SESSION["post_sep"] < $allow_sep)   
	 {
	 exit("请不要反复刷新");   
	 }   
	 else  
	 {   
	 $_SESSION["post_sep"] = time();   
	 }   
	 }   
	 else  
	 {   
	 $_SESSION["post_sep"] = time();   
	}   
}


	/**
	 * 获取一个评论类别的值 或相似格式的字
	 * @param $str 源字符串  如"预定|2|客服|1"
	 * @param $str1 目录值名  如"预定"
	 */
	function formpl($str,$str1)
	{
		preg_match("/".$str1."\|[0-9]{1}/",$str,$a1);
		return str_replace($str1."|", "", $a1[0]);
	}
	
	/**
	 * 根据评论的选择值生成单选按纽
	 */
	function createplradio($spanname,$v)
	{
		if($v==2) $t1="checked";
		if($v==1) $t2="checked";
		if($v==0) $t3="checked";
		$pjarrstr=" <input name='".$spanname."' value='2' type='radio' $t1 />满意 ";
		$pjarrstr=$pjarrstr." <input name='".$spanname."' value='1' type='radio' $t2 />一般 ";
		$pjarrstr=$pjarrstr." <input name='".$spanname."' value='0' type='radio' $t3 />不满意";
		return $pjarrstr;
	}
	


/**
 * 循环建立文件夹
 * @param $dir 路径要求传入物理路径
 * @param $mode  权限模板，默认具有读写权限
 */
function mkdirs($dir, $mode = 0777){
     if (is_dir($dir) || @mkdir($dir, $mode))
         return true;
     if (!mkdirs(dirname($dir), $mode))
            return false;
        return @mkdir($dir, $mode);
}



?>
